home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Diamond Collection / The Diamond Collection (Software Vault)(Digital Impact).ISO / cdr23 / csmac13a.zip / CS-MAC.CSM < prev    next >
Text File  |  1995-01-22  |  59KB  |  1,372 lines

  1.  
  2.  ┌────────────────────────────────┐
  3.  │  Chuck Seyboldt's COMMO Macro  │   CS-MAC13A:CS-MAC.CSM
  4.  └────────────────────────────────┘   Copyright (c) 1995
  5.   *                                   All rights reserved
  6.   *
  7.   *  You will need to  *> !EDIT! <*  Only  CS-COMMO.CSM
  8.   *                       ^^^^^^
  9.   *  The file you are reading does  *NOT*  require editing.
  10.   *
  11. ***  You  *must*  edit your COMMO.FON to automate mail and file fetching.
  12.   *  To do so automatically, Press Alt-M and choose "Add a new BBSID".
  13.  
  14.  {:retu}             {retu}                     ;very handy labelname
  15.  
  16.   *  Subroutine to clear rows from %count to 24}
  17.  {:1-2cle}{disp %count,1,,                                                                                }
  18.          {incr count} {comp count,24} {ifco-le 1-2cle} {retu}
  19.  
  20.  *  Subroutines to show reassuring progress messages
  21.  {:assure}      {disp %count,2,,Checking ...} {retu}
  22.  {:shh_assure}  {disp %count,2,, ...}         {retu}
  23.  
  24.  ┌─────────────────────────────────────────┐
  25.  │  Full screen threaded help file reader  │
  26.  └─────────────────────────────────────────┘
  27.  {:keys} {setv var,keys} {retu}
  28.  {:tour} {setv var,CS-MAC} {retu}
  29.  {:va_rs}{setv var,variables} {retu}
  30.  {:set_var}
  31.          {setv valid,abcdefghijklmnopqrstuvwxyz1234567890_}
  32.          {setv ctr,0}
  33.  {:vvar_loop} {incr ctr} {subs t,%ctr,1,%pvar}
  34.          {comp t} {ifco va_var}
  35.          {inst valid,%t}
  36.          {setv var,%pvar}
  37.          {ifco vvar_loop,in_var}
  38.  {:in_var} {setv valid} {info-d5s0 "%pvar" is not a valid variable name} {retu}
  39.  {:va_var} {setv valid} {inpu %%var,Input value for %var} {retu}
  40.  {:pr_nt}{wind}
  41.          {setv var,%pvar}
  42.          {disp %_slp,24,70,             Printing ... }
  43.          {wope %ramdr\!^(^)!}
  44.          {rclo} {rope %_hom%cs-mac.hlp,retu}
  45.  {:pr_rlo}{read hline}
  46.          {inst hline,e:  %var }         ;Short for "Variable"
  47.          {ifco ,pr_rlo}
  48.          {subs hline,12,72,%hline}      ;truncate first line each subject
  49.  {:p_hlp}{writ      %hline} {read hline}
  50.          {comp hline}  {ifco ,p_hlp}    ;if blank line, close and type
  51.          {writ  }
  52.          {wclo}
  53.          {comp prn} {ifco-c _prn}
  54.          {exec-n type %ramdr\!^(^)! > %_prn}
  55.          {exec-n del %ramdr\!^(^)!>NUL}
  56.          {retu}
  57.  {:_prn} {setv _prn,prn} {retu}
  58.  
  59.  {:press_cr}{setv stuft}{keys 0d}{retu}
  60.  {:_slp1}{setv _slp,25} {retu}
  61.  {:hl_prog}{disp %_slp,28,70,      Searching ...} {retu}
  62.  
  63.  {:csmh} {comp cs_hlp} {ifco csmhs}
  64.          {info-qs0 Do you want CS-MAC Help?}{ifco ,help}
  65.  {:csmhs}{setv var,?} {setv row,%_row} {setv col,%_col} {setv stuft,y}
  66.  {:csmhc}{stat n} {comp _slp} {ifco-c _slp1}
  67.          {comp xref}  {ifco ,xref}     ;returns to :csmhc w/variable
  68.          {disp %_slp,45,70,       [P] print  [S] set          }
  69.          {comp hline} {ifco hl_p1}
  70.          {disp %_slp,15,70,                 [ENTER] next page }
  71.          {goto hl_px}
  72.  {:hl_p1}{disp %_slp,15,70,                 [?] help  [K] keys}
  73.          {disp %_slp,16,70,%var       }
  74.  {:hl_px}{disp %_slp,1,70, CS-MAC Help > }
  75.          {setv lvar,%var}
  76.          {sete-p0 hl_res}
  77.          {comp stuft,y} {ifco-c press_cr}
  78.          {gets-i var,12,hl_thd}
  79.          {comp var,%lvar} {ifco hl_res}
  80.          {comp var}{ifco hl_res}        ;if ESCape from help window
  81.          {comp var,k}  {ifco-c keys}
  82.          {comp var,t}  {ifco-c tour}
  83.          {comp var,s}  {ifco-c set_var}
  84.          {comp var,v}  {ifco-c va_rs}
  85.          {comp var,p}  {ifco-c pr_nt}
  86.  {:x_ref}{setv pvar,%var}
  87.          {rclo} {rope %_hom%cs-mac.hlp,no_vhlp}
  88.          {disp %_slp,16,70,%var       }
  89.          {disp %_slp,28,70,          ...         }
  90.          {comp shh,y} {ifco-c ,hl_prog}
  91.  {:hl_rlo}{read hline}
  92.          {inst hline,e:  %var }         ;Short for "Variable"
  93.          {ifco ,hl_rlo} {setv var}
  94.  {:hl_p2}{subs hline,12,200,%hline}     ;truncate first line each subject
  95.          {setv count,0}
  96.  {:m_hlp}{incr count}
  97.          {setv _menu%count,%hline}
  98.          {inst hline,Ref: }{ifco-c hl_ref} ;get next subject in thread
  99.          {comp print,y} {ifco-c print_l}
  100.          {read hline}
  101.          {comp count,20}   {ifco-e hl_men} ;if at 20 lines, show menu
  102.          {comp hline}  {ifco ,m_hlp}       ;if blank line, show menu
  103.  {:hl_men}{wind} {incr count,4}{setv var}
  104.          {setv _mlabel,csmhc}
  105.          {subs _mcolor,1,5,%palette}
  106.          {wind-k}
  107.          {keys 61}
  108.          {menu %count,76,CS-MAC%ver Help}
  109.  {:hl_res}{wind} {rclo} {setv lvar} {setv hline} {setv pvar}
  110.          {stat y} {disp %row,%col} {setv col} {setv row} {retu}
  111.  {:hl_ref}{setv cn,%_pos}{incr cn,5}{subs xref,%cn,12,%hline}{setv cn}{retu}
  112.  {:hl_thd}{comp hline} {ifco ,hl_p2}
  113.          {comp lvar} {ifco hl_res} {setv var,%lvar} {goto x_ref}
  114.  {:xref} {inst xref, } {ifco ,xvar}
  115.          {setv pos,%_pos} {decr pos} {subs xref,1,%pos,%xref} {setv pos}
  116.  {:xvar} {setv var,%xref} {setv xref}
  117.          {goto csmhc} or to :x_ref for no-prompt
  118.  {:no_vhlp}
  119.          {disp %_slp,45,70,          [ESC]ape to continue   }
  120.          {disp %_slp,1,70, "%var" is not described in the CS-MAC.HLP file}
  121.          {alar 1} {paus 12} {setv var} {goto csmhc}
  122.  
  123.  ┌───────────────────┐
  124.  │  File-Edit-Menus  │
  125.  └───────────────────┘
  126.  {:edit_menu}
  127.          {setv file,%reader}  {call dr_of} {setv read,%file} ;:dr_of is in CS-COMMO
  128.          {setv file,%ev_file} {call dr_of} {setv evfi,%file}
  129.          {setv file,%address} {call dr_of} {setv adre,%file}
  130.          {setv _menu1,   D   %adre}        {setv adre}
  131.          {setv _menu2,   E   %evfi}        {setv evfi}
  132.          {setv _menu3,   F   File of choice}
  133.          {setv _menu4,   M   MACRO edit menu}
  134.          {setv _menu5,   W   Wishlist for d/l}
  135.          {setv _menu7,═════ Offline Messages ═════}
  136.          {setv _menu8,   R   RUN %read}    {setv read}
  137.          {setv read} {setv evfi}
  138.          {setv _menter,do_ap}
  139.          {setv _mlabel,ed_a,,ed_c,ed_d,ed_e,ed_f,ed_g,ed_h,,,,ed_l,ed_m,,macro_menu,ed_p,ed_m,reader,ed_s,ed_t,,,ed_w,,,ed_z}
  140.          {subs _mcolor,19,5,%palette}
  141.          {menu 12,32, EDIT Menu }
  142.          {retu}
  143.  
  144.  ┌──────────────────────────────────┐
  145.  │  Macro and support file editing  │
  146.  └──────────────────────────────────┘
  147.  {:ed_m}
  148.          {setv file,%ap_pass} {call dr_of} {setv pass,%file}
  149.          {setv _menu1,  A   cs-Acton.csm}
  150.          {setv _menu2,  C   cs-Commo.csm}
  151.          {setv _menu3,  L   cs-Logon.csm}
  152.          {setv _menu4,  S   cS-mac.csm}
  153.          {setv _menu5,  T   cs-Table.csm}
  154.          {setv _menu7,  G   cs-mac%ver.cfG}
  155.          {setv _menu8,  H   mostHost.mac}
  156.          {setv _menu9,  P   %pass (Host)}  {setv pass}
  157.          {setv _menu10,  Z   %dev_mac}
  158.          {setv _menter,do_ap}
  159.          {setv _mlabel,ed_a,,ed_c,,,,ed_g,ed_h,,,,ed_l,macro_menu,,macro_menu,ed_p,edit_menu,,ed_s,ed_t,,,,,,ed_z}
  160.          {subs _mcolor,19,5,%palette}
  161.          {menu 14,25, MACRO Edit Menu }
  162.          {goto edit_menu}               ;ESCape back to prior menu
  163.  
  164.  {:def_ed}{setv lf_ed,%_hom} {retu}     ;default edit file name
  165.  {:ed_a} {setv file,%_hom%cs-acton.csm} {goto ed_it}
  166.  {:ed_c} {setv file,%_hom%%_mac}        {goto ed_it}
  167.  {:ed_d} {ifex-c %address,,make_add}
  168.          {setv file,%address} {comp exed_all,y}
  169.          {ifco ed_it} {edit %file}      {goto do_ap}
  170.  {:ed_e} {setv file,%ev_file} {comp exed_all,y}
  171.          {ifco ed_it} {edit %file}      {goto do_ap}
  172.  {:ed_f} {comp ed_wfl,y} {ifco ,ed_simple}
  173.          {call pm_p}                    ;routine in CS-COMMO using PNS
  174.          {rope %_hom%^(send^).lst,ed_it}
  175.          {setv file}
  176.  {:ed_floop} {read fname}
  177.          {setv file,%file %fname} {goto ed_floop}
  178.  {:ed_simple} {comp lf_ed} {ifco-c def_ed}
  179.          {setv file,%lf_ed}
  180.          {inpu file,File to Edit}
  181.          {setv lf_ed,%file}             {goto ed_it}
  182.  {:ed_g} {setv file,%_hom%cs-mac%ver.cfg} {comp exed_all,y}
  183.          {ifco ed_it} {edit %file}      {goto do_ap}
  184.  {:ed_h} {setv file,%_hom%Mosthost.mac} {goto ed_it}
  185.  {:ed_l} {setv file,%_hom%cs-logon.csm} {goto ed_it}
  186.  {:ed_p} {setv file,%ap_pass}           {goto ed_it}
  187.  (:reader) is in CS-COMMO.MAC
  188.  {:ed_s} {setv file,%_hom%cs-mac.csm}   {goto ed_it}
  189.  {:ed_t} {setv file,%_hom%cs-table.csm} {goto ed_it}
  190.  {:ed_w} {setv file,%dldir\wishlist} {comp exed_all,y}
  191.          {ifco ed_it} {edit %file}      {goto do_ap}
  192.  {:ed_z} {setv file,%_hom%%dev_mac}     {goto ed_it}
  193.  
  194.  {:del_sendlst} {exec-n del %_hom%^(send^).lst>NUL}
  195.          {subs file,2,255,%file} {retu}
  196.  {:ed_it}{ifex %ext_ed,,in_ed}
  197.          {comp file,%_hom%%_mac} {ifco swap_ed}
  198.          {comp swap_ed,y} {ifco swap_ed}
  199.          {exec %ext_ed %file}
  200.          {comp ed_wfl,y} {ifco-c del_sendlst} {setv file} {retu}
  201.  {:swap_ed}{exec-s %ext_ed %file} {setv file} {retu}
  202.  {:in_ed}{inst file,*}   {ifco in_mult}
  203.          {inst file,?}   {ifco in_mult}
  204.          {inst file, }   {ifco in_mult}
  205.          {edit %file}    {retu}
  206.  {:in_mult} {info-d10s0 Commo's internal editor cannot handle multiple files}
  207.          {retu}
  208.  
  209.  ┌─────────────────────────┐
  210.  │  Built in voice dialer  │
  211.  └─────────────────────────┘
  212.  {:dialer}                               ;Dial Phone for voice
  213.          {ifca retu}                     ;skip if OnLine
  214.          {ifex-c %address,,make_add}     ;make address file
  215.          {setv file}
  216.          {sete-p0 do_ap}
  217.          {inpu file,Phone dialer ■ Search %address for: }
  218.          {comp file}  {ifco retu}
  219.          {ifex %ext_di,enf6}             ;if %ext_di exists, use
  220.          {setv srch_fil,%address}
  221.          {call search} {setv srch_fil}
  222.          {comp addr} {ifco retu}
  223.          {subs file,1,23,%addr}          ;name in cols 1-23
  224.          {subs addr,32,14,%addr}         ;phone# in cols 32-45
  225.          {wind-k}
  226.          {setv _menu1, Calling  %file}
  227.          {setv _menu2, Dialing   %addr}
  228.          {setv _mlabel,anf6}
  229.          {keys 61}
  230.          {menu 6,31,CS-MAC%ver}
  231.  {:anf6} {spdc n}
  232.          {sete-p0 no_talk}
  233.          {send ATM1DT%addr^m}
  234.          {setl 30}
  235.          {golo t_busy,BUSY}
  236.          {golo t_ring,RINGING}
  237.          {look %_tim}
  238.          {goto no_talk}
  239.  {:t_ring}
  240.          {info-d15 %file RINGING, Pick up the phone!}
  241.          {goto no_talk}
  242.  {:t_busy}
  243.          {info-d5s0           %file is BUSY          }
  244.  {:no_talk}
  245.          {setv addr} {setv file}
  246.          {send  } {wind}  {paus 1}
  247.          {spdc y} {retu}                   ;end internal program
  248.  {:enf6} {exec-n %ext_di %file}   {retu}   ; -or- use external pgm
  249.  
  250.  {:make_add}
  251.          {info-q1s0 Make %address now?}
  252.          {ifco ,stop}
  253.          {wope %address}
  254.          {writ CS-MAC%ver        Address file   Made on %_dat}
  255.          {writ Name                           Phone}
  256.          {writ ----------------------------   --------------}
  257.          {writ Chuck Seyboldt                 1-414-250-0512     cboldt@nlbbs.com}
  258.          {writ Long Distance Information      1-800-555-1212}
  259.          {writ Ye Local Eat and Drinkery            555-1234     Pizza}
  260.          {wclo} {retu}
  261.  
  262.  ┌────────────────────────────────────────┐
  263.  │  REP and ACTION Mark and Dial Routine  │
  264.  └────────────────────────────────────────┘
  265.  {:send_rep} {unma}
  266.          {setv ext,REP} {call repp_loop}    ;check for REP packets
  267.          {setv ext,PST} {call repp_loop}    ;check for PST packets
  268.          {goto act_mark}                    ;check for ACTION file
  269.  {:repp_loop}                          ;generic check for packet
  270.          {file %repdr\*.%ext}
  271.          {ifco rep_loop}
  272.          {comp sho_,y} {ifco ,retu}
  273.          {info-d3s0  No Reply Packets (.%ext)}  ;say if no packet
  274.          {retu}
  275.  {:rep_loop}
  276.          {setv skip,y}                      ;or mark and check for more
  277.          {setv file,%_ffn}
  278.          {inst file,.} {setv pos,%_pos} {decr pos}
  279.          {subs file,1,%pos,%file}
  280.          {mark %file}                       ;%file == %bbsid
  281.          {comp sho_,y} {ifco ,retu}
  282.          {info-d3s0   Marking %file.%ext  }
  283.          {file-x %repdr\*.%ext}             ;any more REPs?
  284.          {ifco rep_loop}                    ;ifso, loop and mark them too
  285.          {retu}
  286.  
  287.  {:act_mark}
  288.          {file %_hom%action.*}              ;then check for ACTION files
  289.          {ifco act_loop}                    ;ifso, mark the dialer
  290.          {comp sho_,y} {ifco ,comp_skip}
  291.          {info-d3s0 No ACTION Requests}     ;Say if no ACTION
  292.  {:comp_skip}
  293.          {comp skip}  {ifco do_ap,dial_restrict};no REPs marked, do Autopilot
  294.  {:act_loop}
  295.          {subs file,-2,2,%_ffn} {mark %file^)}  ;%file == %abbr
  296.          {info-d3s0  Marking ACTION.%file }
  297.          {file-x %_hom%action.*}
  298.          {ifco act_loop}
  299.  {:dial_restrict}
  300.          {setv m_call,fon_dial}             ;set loop for dialer
  301.          {call rate}                        ;Check TelCo tarriff structure
  302.          {comp rate,day} {setv rate}
  303.          {ifco oride_msg,fon_dial}          ;force manual dial if weekday
  304.  {:oride_msg}
  305.          {wind-k}
  306.          {info-d1s0 Autodial disabled during %rate ■ Override (y/N)?}
  307.          {setl 15,do_ap}
  308.          {golo fon_dial,y}
  309.          {golo do_ap,^m}
  310.          {golo do_ap,n}
  311.          {look Dial Phone now (y/N)?}
  312.          {goto do_ap}
  313.  
  314.  ┌─────────────────────────────────┐
  315.  │  Subroutine returns Telco rate  │
  316.  └─────────────────────────────────┘
  317.  {:rate} {comp %_dwt,sat}{ifco nite};is it Saturday?
  318.          {comp %_24h,8}  {ifco-l nite}   ;is it before 8:00AM?
  319.          {comp %_24h,22} {ifco-g nite}   ;is it after 10:59PM?
  320.          {comp %_24h,16} {ifco-g eve}    ;is it after  4:59PM?
  321.          {comp %_dwt,sun}{ifco nite}     ;Sunday 8AM-5PM == night rate
  322.          {setv rate,Day} {retu}          ;else, full weekday rate applies
  323.  {:eve}  {setv rate,Eve} {retu}
  324.  {:nite} {setv rate,Nite}{retu}
  325.  
  326.  ┌────────────────────────────────────────┐
  327.  │  Dialing Macro for BBS Mailrun Events  │   Adapted From: TIM SAARI
  328.  └────────────────────────────────────────┘
  329.  {:fon_dial} dial-c 45,   goto do_ap   ;Optional simple Multi-dial & Return
  330.          {wind} {noca}
  331.          {setv busy,0}
  332.          {setv nodt,0}
  333.          {setv voic,0}
  334.          {setv carr,0}
  335.          {wind-k}
  336.  {:redial}
  337.          {setv flag}  {setv ql}       ;Clear anything set in .FON
  338.          {setv door2} {setv mail}     ; else it carries over on BUSY
  339.          {setv abbr}  {setv dorno}
  340.          {setv inet}  {setv keyb}
  341.          {setv action}
  342.          {setv or_prot} {setv fe_pmt}
  343.          {setv alias} {setv qlo}
  344.          {setv count,12}
  345.          {sete-p0 do_ap}                           ;Goto autopilot on ESCape
  346.          {dial-c 1,,seeya}                         ;if RING interrupts dial
  347.          {comp _dtc,0}             {ifco do_ap}    ;no systems marked
  348.          {comp _dtc,3}             {ifco inccarr}  ;dialer timed out
  349.          {comp _dtc,4}             {ifco interve}  ;operator intervention
  350.          {comp _dialrt,BUSY}       {ifco incbusy}
  351.          {comp _dialrt,NO DIAL TONE}    {ifco incnodt}
  352.          {comp _dialrt,VOICE}      {ifco incvoic}
  353.  {:incbusy}
  354.          {incr busy}
  355.          {comp busy,45} ;number of redials for a BUSY result code
  356.          {info-d5s0 BUSY ! %busy    No Ans: %carr    Voice: %voic    No tone: %nodt}
  357.          {ifco-g ,redial}
  358.          {info-d5s0 Unmarking %_nam, BUSY}
  359.          {wope-a %_uselog} {writ}
  360.          {writ ^(Unm^)  %_dat  %_tim  BUSY        %_nam} {wclo}
  361.          {unma-l} {setv busy,0}
  362.          {wind} {goto redial}
  363.  {:inccarr}
  364.          {incr carr}
  365.          {comp carr,3}                  ;unmark after third NO ANSWER
  366.          {info-d5s0 NO ANS ! %carr    Busy: %busy    Voice: %voic    No tone: %nodt}
  367.          {ifco-g ,redial}
  368.          {info-d5s0 Unmarking %_nam, NO ANSWER}
  369.          {wope-a %_uselog} {writ}
  370.          {writ ^(Unm^)  %_dat  %_tim  NO ANSWER   %_nam} {wclo}
  371.          {unma-l} {setv carr,0}
  372.          {wind} {goto redial}
  373.  {:incnodt}
  374.          {incr nodt}
  375.  {:d_nodt}{info-d10s0 NO DIAL TONE  (%count%0 second delay)  %nodt}
  376.          {decr count} {comp count,0} {ifco ,d_nodt}
  377.          {comp nodt,9}  ;number of redials for a NO DIAL TONE result code
  378.          {ifco-g ,redial}
  379.          {wope-a %_uselog} {writ}
  380.          {writ        %_dat  %_tim  NO DIAL TONE} {wclo}
  381.          {goto do_ap}
  382.  {:incvoic}
  383.          {incr voic}
  384.          {comp voic,5}  ;number of redials for a VOICE result code
  385.          {info-d5s0 VOICE ! %voic    Busy: %busy    No tone: %nodt    No Ans: %carr}
  386.          {ifco-g ,redial}
  387.          {info-d5s0 Unmarking %_nam, VOICE}
  388.          {wope-a %_uselog} {writ}
  389.          {writ ^(Unm^)  %_dat  %_tim  VOICE       %_nam} {wclo}
  390.          {unma-l} {setv voic,0}
  391.          {wind} {goto redial}
  392.  {:interve}
  393.          {info-d5s0 INTERRUPTED  Busy: %busy  Voice: %voic  No tone: %nodt  No Ans: %carr}
  394.          {info-qs0 Return to terminal?}
  395.          {wind}
  396.          {ifco do_ap}{wind-k}{goto redial}
  397.  
  398.  ┌────────────────────────┐
  399.  │  Dial Interrupt Macro  │
  400.  └────────────────────────┘
  401.  {:seeya}{info-d600  Incoming call interrupted Dialout, pausing 10 minutes}
  402.          {retu}
  403.  
  404.  ┌─────────────────────────────────────────────────┐
  405.  │  Menu driven addition of new BBSs to COMMO.FON  │
  406.  └─────────────────────────────────────────────────┘
  407.  {:new_bbsid}
  408.          {ifex-c %_hom%cs-mac.hlp,,need_hl}
  409.          {setv cs_col,70}          ;set colors
  410.          {setv bbs_col,20}         ;bbsware menu
  411.          {setv mwa_col,30}         ;mailware menu
  412.          {setv ope_col,50}         ;open door menu
  413.          {setv cfm_col,0f}         ;confirm information
  414.          {setv temp}
  415.          {setv _menu1, 1 ■ Modify existing entry}
  416.          {setv _menu2, 2 ■ New entry to %_fon}
  417.          {setv _menter,esc}
  418.          {setv _mlabel,fon_a,fon_b}
  419.          {menu 6,33,.FON Configuration}
  420.          {goto esc}
  421.  
  422.  {:fon_b}{setv count,8} {call 1-2cle}
  423.          {sete-p0 new_bbsid}
  424.          {disp 8,1,%cs_col,                   Making new entry into .FON directory                         }
  425.          {disp 9,2,,System name: }                 {gets-i sys_name,40,esc}
  426.          {disp ,,,    Sysop name (optional): }     {gets-i sys_op}
  427.          {disp 10,2,,%sys_name phone number: }      {gets-i sys_num}
  428.          {setv sys_name,%sys_name ≡ %sys_op}       {setv sys_op}
  429.          {comp sys_num}  {ifco esc}
  430.          {disp 11,2,,   Your password : } {gets-i pas}
  431.  {:g_bau}{disp 12,21,,      }
  432.          {setv var,baud} {call disp_help}
  433.          {disp 12,2,,Baud rate (%_spe): } {gets-i baud,6}
  434.          {comp baud,1200}    {ifco g_ter}
  435.          {comp baud,2400}    {ifco g_ter}
  436.          {comp baud,4800}    {ifco g_ter}
  437.          {comp baud,9600}    {ifco g_ter}
  438.          {comp baud,19200}   {ifco g_ter}
  439.          {comp baud,32400}   {ifco g_ter}
  440.          {comp baud,57600}   {ifco g_ter}
  441.          {comp baud,115000}  {ifco g_ter}
  442.          {setv baud,%_spe}
  443.  {:g_ter}{disp 13,21,,  }
  444.          {setv var,term} {call disp_help}
  445.          {disp 13,2,,Terminal [a,v,t] : } {gets-i term,1}
  446.          {comp term,a}      {ifco g_ddd}
  447.          {comp term,v}      {ifco g_ddd}
  448.          {comp term,t}      {ifco g_ddd}
  449.          {goto g_ter}
  450.  {:g_ddd}{exec-s ver>nul}
  451.          {wope-a %_hom%%_fon}
  452.          {writ  %sys_name  00/00/00 ^(%sys_num^) ^(%pas^) ^(^) ^(%baud,,,%term^)}
  453.          {wclo}
  454.          {exec-s ver>nul}
  455.          {setv sys_num} {setv pas}
  456.          {setv baud}    {setv term}
  457.          {setv temp,%sys_name} {setv sys_name}
  458.  
  459.  {:fon_a}{disp %count,1,,             }
  460.          {setv count,9} {call 1-2cle}
  461.          {sete-p0 esc}
  462.          {inpu temp,Search %_fon for what BBS?}
  463.          {comp temp}    {ifco esc}
  464.          {rope %_hom%%_fon,pick_1}
  465.          {setv count,1}
  466.          {clea}
  467.  {:id_loop}
  468.          {comp shh,y} {ifco-c shh_assure,assure}
  469.          {read line}
  470.          {inst line,%temp}
  471.          {ifco ,id_loop}
  472.          {inst line,^)}  {ifco ,no_curley}
  473.          {subs line,1,%_pos,%line}
  474.  {:no_curley}
  475.          {disp %count,1,0e,%count.  }
  476.          {disp %count,4,07,%line}
  477.          {incr count}
  478.          {goto id_loop}
  479.  
  480.  {:only_1}{setv cntr,1}{goto jst_1}
  481.  {:pick_1}
  482.          {comp count,1} {ifco new_bbsid}
  483.          {comp count,2} {ifco only_1}
  484.          {disp %count,1,07,              ^m^j^j}
  485.          {disp ,,,Which Number? } {setv cntr}
  486.          {gets-i cntr}
  487.          {comp cntr}     {ifco new_bbsid}
  488.          {comp cntr,%count}
  489.          {ifco-ge pick_1}
  490.          {comp cntr,0}   {ifco pick_1}
  491.  {:jst_1}{setv coun,1}
  492.          {rope %_hom%%_fon,clect_bbs}
  493.  {:next_b}
  494.          {read line}
  495.          {inst line,%temp}
  496.          {ifco ,next_b}
  497.          {comp cntr,%coun}
  498.          {ifco this_b}
  499.          {incr coun}
  500.          {goto next_b}
  501.  {:this_b}
  502.          {inst line,^)}
  503.          {subs line,1,%_pos,%line}
  504.          {clea}
  505.          {disp 10,1,,%line}
  506.          {setv hold,%line}
  507.          {rclo}
  508.  
  509.  {:re_inid}
  510.          {disp 8,1,%cs_col,                   Add Mailrun variables to a .FON entry                        }
  511.          {setv bbsid}
  512.          {setv var,bbsid}
  513.          {call disp_help}
  514.          {disp 12,2,0e,Input BBSID for this Board: }
  515.          {gets-i bbsid,8}
  516.          {comp bbsid}   {ifco esc}
  517.          {inst bbsid, } {ifco re_inid}          ;Characters not allowed
  518.          {inst bbsid,.} {ifco re_inid}          ; in DOS filenames
  519.          {inst bbsid,?} {ifco re_inid}
  520.          {inst bbsid,*} {ifco re_inid}
  521.  
  522.          {setv var,bbs}
  523.          {call disp_help}
  524.          {disp 16,24,%bbs_col, EXEC-PC   = exc │ PowerBBS  = pow }
  525.          {disp 17,24,%bbs_col, GAP       = gap │ Remote Ac = rma }
  526.          {disp 18,24,%bbs_col, Internet  = int │ Spitfire  = s-f }
  527.          {disp 19,24,%bbs_col, MacroBBS  = mac │ T.A.G.    = tag }
  528.          {disp 20,24,%bbs_col, MajorBBS  = maj │ TriBBS    = tri }
  529.          {disp 21,24,%bbs_col, MAXIMUS   = max │ Virtual   = vir }
  530.          {disp 22,24,%bbs_col, OPUS-CBCS = opu │ Wildcat!  = wc! }
  531.          {disp 23,24,%bbs_col, PCBoard   = pcb │ RBBS      = pcb }
  532.  
  533.  {:g_0}  {setv bbs}
  534.          {disp 13,2,0e,Input BBS for "%bbsid"   (Choose from BBSware list below): }
  535.          {gets-i bbs,3,esc}
  536.          {comp bbs,exc} {ifco g_e}  EXEC-PC
  537.          {comp bbs,gap} {ifco g_1}  GAP
  538.          {comp bbs,int} {ifco g_k}  Internet
  539.          {comp bbs,mac} {ifco g_m}  MacroBBS
  540.          {comp bbs,mah} {ifco g_1}  MajorBBS Handle:
  541.          {comp bbs,maj} {ifco g_1}  MajorBBS "new":
  542.          {comp bbs,max} {ifco g_1}  MAXIMUS-CBCS
  543.          {comp bbs,opu} {ifco g_1}  OPUS-CBCS
  544.          {comp bbs,pcb} {ifco g_1}  PCBoard
  545.          {comp bbs,pow} {ifco g_p}  PowerBBS
  546.          {comp bbs,rma} {ifco g_1}  Remote Access
  547.          {comp bbs,s-f} {ifco g_1}  Spitfire
  548.          {comp bbs,tag} {ifco g_1}  T.A.G.
  549.          {comp bbs,tri} {ifco g_t}  TriBBS
  550.          {comp bbs,vir} {ifco g_1}  Virtual
  551.          {comp bbs,wc!} {ifco g_1}  Wildcat!
  552.          {comp bbs,wc1} {ifco g_1}  Wildcat!
  553.          {comp bbs,wc2} {ifco g_1}  Wildcat!
  554.          {goto g_0}
  555.  
  556.  {:g_k}  {setv keyb}
  557.          {setv var,keyb}
  558.          {call disp_help}
  559.          {disp 14,2,0e,Load Keyboard macro after logon [PINE, VT102, VT220]: }
  560.          {gets-i keyb,8}
  561.          {comp keyb,pine} {ifco g_1}
  562.          {comp keyb,vt102}{ifco g_1}
  563.          {comp keyb,vt220}{ifco g_1}
  564.          {comp keyb}      {ifco g_1}
  565.          {goto g_k}
  566.  
  567.  {:g_e}  {disp 14,67,0f,< exq} {goto g_1}
  568.  {:g_p}  {disp 14,67,0f,< pwq} {goto g_1}
  569.  {:g_m}  {disp 14,67,0f,< mmp} {goto g_1}
  570.  {:g_t}  {disp 14,67,0f,< tma}
  571.  
  572.  {:g_1}  {setv var,mail}
  573.          {call disp_help}
  574.          {disp 16,8,%mwa_col, Bluewave = blu │ Jimmer   = jmr │ O_QWKer  = oqw │ Tomcat! = tc! }
  575.          {disp 17,8,%mwa_col, Cam-Mail = cam │ LAKOTA   = lak │ PCBoard  = p15 │ TriMail = tma }
  576.          {disp 18,8,%mwa_col, Char OLQ = coq │ MKQwk    = mkq │ PowerBBS = pwq │ uqwk    = uqw }
  577.          {disp 19,8,%mwa_col, DCQwk    = dcq │ MarkMail = mm2 │ Qmail 2  = qm2 │ VBQwk   = vbq }
  578.          {disp 20,8,%mwa_col, EXEC-PC  = exq │ MajorBBS = mmj │ Qmail 4  = qm4 │ WC!Intl = wci }
  579.          {disp 21,8,%mwa_col, JCQwk    = jcq │ MacroBBS = mmp │ RoseMail = roz │ WC!Mail = wcm }
  580.          {disp 22,8,%mwa_col, JetMail  = jet │ Maximus  = mxr │ Slvr Xpr = sxp │ ZIPnews = zns }
  581.          {disp 23,8,%mwa_col,                │                │                │               }
  582.  
  583.          {setv mail}
  584.          {disp 14,2,0e,Input MAIL for "%bbsid" (Choose from MAILware list below): }
  585.          {gets-i mail,3,nul_dorno}
  586.          {comp mail,blu} {ifco g_2}  Bluewave
  587.          {comp mail,cam} {ifco g_2}  CamMail
  588.          {comp mail,coq} {ifco g_2}  Charlie's Off line Qwk
  589.          {comp mail,dcq} {ifco g_2}  DCQwk
  590.          {comp mail,exq} {ifco g_2}  EXEC-PC mail
  591.          {comp mail,jcq} {ifco g_2}  JCQwk
  592.          {comp mail,jet} {ifco g_2}  JetMail
  593.          {comp mail,jmr} {ifco g_2}  Jimmer
  594.          {comp mail,lak} {ifco g_2}  LAKOTA
  595.          {comp mail,mkq} {ifco g_2}  MKQwk
  596.          {comp mail,mm2} {ifco g_2}  Markmail
  597.          {comp mail,mmj} {ifco g_2}  Major BBS
  598.          {comp mail,mmp} {ifco g_2}  MacroBBS message packer
  599.          {comp mail,mxr} {ifco g_2}  MAXIMUS Reader
  600.          {comp mail,oqw} {ifco g_2}  O_QKWer mail door for OPUS
  601.          {comp mail,p15} {ifco g_2}  PCBoard 15
  602.          {comp mail,pwq} {ifco g_2}  PowerBBS built-in
  603.          {comp mail,qm2} {ifco g_2}  Qmail 2
  604.          {comp mail,qm4} {ifco g_2}  Qmail 4
  605.          {comp mail,roz} {ifco g_2}  RoseMail
  606.          {comp mail,sxp} {ifco g_2}  Silver Express
  607.          {comp mail,tc!} {ifco g_2}  TomCat!
  608.          {comp mail,tma} {ifco g_2}  TriMail
  609.          {comp mail,uqw} {ifco g_2}  uqwk (unix program)
  610.          {comp mail,vbq} {ifco g_2}  Virtual BBS QWK mail
  611.          {comp mail,wci} {ifco g_2}  WildCat internal
  612.          {comp mail,wcm} {ifco g_2}  WildCat mail (wcMAIL)
  613.          {comp mail,zns} {ifco g_2}  Zipnews (not qwk based)
  614.          {goto g_1}
  615.  {:g_2}  {comp mail,p15} {ifco nul_dorno}
  616.          {comp mail,uqw} {ifco nul_dorno}
  617.          {comp mail,wci} {ifco nul_dorno}
  618.          {setv var,dorno}
  619.          {call disp_help}
  620.          {disp 16,28,%ope_col,   Some examples of DOOR   }
  621.          {disp 17,28,%ope_col,   commands to help you:   }
  622.          {disp 18,28,%ope_col,                           }
  623.          {disp 19,28,%ope_col,       open markmail^|      }
  624.          {disp 20,28,%ope_col,                           }
  625.          {disp 21,28,%ope_col,       s^|~~~~~~~~~~f^|      }
  626.          {disp 22,28,%ope_col,                           }
  627.          {disp 23,28,%ope_col,       /Q^|                 }
  628.  
  629.          {setv dorno}
  630.          {disp 15,2,0e,Input BBS Command to enter the Maildoor: }
  631.          {gets-i dorno}
  632.  
  633.  {:nul_dorno}
  634.          {subs abbr,1,2,%bbsid}
  635.          {setv ok}
  636.          {setv count,16} {call 1-2cle}
  637.          {disp 17,2,0e,Input YES to write to COMMO.FON: }
  638.          {gets-i ok,3,esc}
  639.          {comp ok}       {ifco esc}
  640.          {inst ok,n}     {ifco esc}
  641.          {comp ok,yes}   {ifco ,nul_dorno}
  642. *
  643. *    ┌────────────────────────────────────────────────────────────────┐
  644. *    │  Example of the data to be appended to an entry in COMMO.FON;  │
  645. *    │                                                                │
  646. *    │  (bbsid,escape) (abbr,es) (dorno,mmail|) (mail,mm2) (bbs,pcb)  │
  647. *    └────────────────────────────────────────────────────────────────┘
  648.  
  649.          {call no_hl}
  650.          {exec-s ver>nul}              ;save .fon in current condition
  651.          {rope %_hom%%_fon,changed}
  652.          {wope %_hom%commofon.new}
  653.          {setv coun,1}
  654.  {:add_fon}
  655.          {setv count,19}                         ;set line to display on
  656.          {comp shh,y} {ifco-c shh_assure,assure} ;display "Working"
  657.          {read line}
  658.          {inst line,%temp}
  659.          {ifco ,add_line}
  660.          {comp cntr,%coun}
  661.          {incr coun}
  662.          {ifco append}
  663.  {:add_line}
  664.          {writ %line}
  665.          {goto add_fon}
  666.  {:append}
  667.          {disp 19,2,,            }
  668.          {inst line,^(bbsid,}
  669.          {ifco ,1append}
  670.          {subs test,%_pos,255,%line}
  671.          {inst test,^)} {setv len,%_pos}  {decr len,7}
  672.          {subs test,7,%len,%test}
  673.          {info-q0s0 BBSID = %test  New BBSID = %bbsid ■ Change .FON entry anyway?}
  674.          {setv test} {setv len}
  675.          {ifco ,no_fonchg}
  676.  {:1append}
  677.          {inst line,^)}                 ;get position of first close curley
  678.          {ifco ,nop1_curl}
  679.          {subs p1,1,%_pos,%line}        ;%p1 is from 1st open to close curley
  680.          {setv pos,%_pos} {incr pos}
  681.          {subs p2,%pos,255,%line}       ;%p2 is all to right of close curley#1
  682.          {inst p2,^)}                   ;is there a close curley in %p2?
  683.          {ifco ,nop2_curl}
  684.          {setv pos,%_pos} {incr pos}
  685.          {subs p3,%pos,255,%p2}         ;%p3 is all to right of close curley#2
  686.          {subs p2,1,%_pos,%p2}          ;%p2 is from 2nd open to close curley
  687.          {inst p3,^)}                   ;is there a close curley in %p3?
  688.          {ifco ,nop3_curl}
  689.          {setv pos,%_pos} {incr pos}
  690.          {subs p4,%pos,255,%p3}         ;%p4 is all to right of close curley#3
  691.          {subs p3,1,%_pos,%p3}          ;%p3 is from 3rd open to close curley
  692.          {inst p3,^(}                   ;discard contents of curley pair #3
  693.          {subs p3,1,%_pos,%p3}          ;  keep column pos of 3rd open curley
  694.  {:p3_ok}{comp mail}                    ;is this a mailrun setup?
  695.          {ifco-c nul_mail,yes_mail}     ;set 3rd curley pair with linked macro
  696.          {inst p4,^(}                   ;is there a 4th set of curleys?
  697.          {ifco-c ,nop4_curl}            ; ifso, line is OK for adding variables
  698.  {:p4_ok}{setv line,%p1%%p2%%p3%%p4}
  699.          {comp mail}                    ;is this a mailrun setup?
  700.          {ifco-c bbs_writ,mail_wri}     ;construct appropriate .FON entry
  701.          {comp keyb} {ifco-c ,yes_keyb}
  702.          {writ %line}
  703.          {incr coun}
  704.          {goto add_fon}                 ;read til end, goto :changed
  705.  
  706.  {:nop1_curl} {disp 16,2,0e,                                    }
  707.               {disp 16,2,0e,Phone number for "%bbsid%": }
  708.               {gets-i phone} {setv p1,%line ^(%phone^)} {setv phone}
  709.  {:nop2_curl} {disp 17,2,0e,                                    }
  710.               {disp 17,2,0e,Password for "%bbsid%": }
  711.               {gets-i pas}   {setv p2,^(%pas^)%p2} {setv pas}
  712.               {setv p3,^(}   {goto p3_ok}
  713.  {:nop3_curl} {setv p3,^(}   {goto p3_ok}
  714.  {:nop4_curl} {setv p4,^(^)} {retu}
  715.  
  716.  {:nul_mail} {setv p3,%p3%glr^)}  {retu}  ;no mail defined
  717.  {:yes_mail} {setv p3,%p3%qwk^)}  {retu}  ;mail is defined
  718.  {:yes_keyb} {setv line,%line ^(keyb,%keyb^)} {retu}
  719.  
  720.  {:bbs_writ} {setv line,%line ^(bbsid,%bbsid^) ^(abbr,%abbr^) ^(bbs,%bbs^)}
  721.              {setv chg_msg,%_hom%%_fon has been updated - logon only.^m^j ^(bbsid,%bbsid^)  Linked macro = ^(glr^)}
  722.              {retu}
  723.  {:mail_wri} {setv line,%line ^(bbsid,%bbsid^) ^(abbr,%abbr^) ^(bbs,%bbs^) ^(mail,%mail^)}
  724.              {comp dorno} {ifco-c ,dorn_yes}
  725.              {setv chg_msg,%_hom%%_fon has been updated - mailrun.^m^j ^(bbsid,%bbsid^) ^(bbs,%bbs^) ^(mail,%mail^)}
  726.              {retu}
  727.  {:dorn_yes} {setv line,%line ^(dorno,%dorno^)}  {retu}
  728.  
  729.  {:no_fonchg}
  730.          {writ %line}
  731.          {setv chg_msg,%_hom%%_fon Unchanged.}
  732.          {goto add_fon}
  733.  
  734.  {:changed}
  735.          {wclo}
  736.          {setv fon,%_fon}
  737.          {exec-s copy %_hom%commofon.new %_hom%%fon>NUL}
  738.          {exec-n del %_hom%commofon.new>NUL}
  739.          {clea}
  740.          {disp 2,2,,%chg_msg^j^j^m}
  741.          {call clea}
  742.          {setv fon}
  743.          {setv hold}
  744.          {goto do_ap}                   ;return control to CS-COMMO.CSM
  745.  
  746.  {:esc}  {clea}
  747.          {call clea}
  748.          {setv fon}
  749.          {setv hold}
  750.          {goto do_ap}
  751.  
  752.  {:clea} {setv line}
  753.          {setv p1}
  754.          {setv p2}
  755.          {setv p3}
  756.          {setv p4}
  757.          {setv ok}
  758.          {setv abbr}
  759.          {setv cntr}
  760.          {setv coun}
  761.          {setv var}
  762.          {setv chg_msg}
  763.          {setv keyb}
  764.          {setv mail}
  765.          {setv bbs}
  766.          {setv dorno}
  767.          {setv bbsid}
  768.          {setv cs_col}
  769.          {setv bbs_col}
  770.          {setv mwa_col}
  771.          {setv ope_col}
  772.          {setv cfm_col}
  773.          {setv up_cmd}
  774.          {setv dn_cmd}
  775.          {setv char}
  776.          {setv pname}
  777.          {setv p_name}
  778.          {setv pline}
  779.          {setv sdesc}
  780.          {retu}
  781.  
  782. ┌──────────────────────────────────────────────────────────────┐
  783. │  Menu driven addition of external protocols to CS-COMMO.CSM  │
  784. └──────────────────────────────────────────────────────────────┘
  785.  {:pcol_2} {setv col,26} {setv row,1} {retu}
  786.  {:pcol_3} {setv col,52} {setv row,1} {retu}
  787.  
  788.  {:prot_ref}
  789.          {setv p_up} {setv p_dn} {setv pname}
  790.          {ifex %_hom%PROTOCOL.DAT,,retu}
  791.          {rope %_hom%PROTOCOL.DAT,no_pref}
  792.          {setv count,1} {setv col,3} {setv row,1}
  793.  {:pref_loop}
  794.          {read pline}
  795.          {inst pline,l:}
  796.          {ifco-c p_hit}
  797.          {goto pref_loop}
  798.  {:p_hit}{subs pline,11,15,%pline}
  799.          {disp %row,%col,,%count. %pline}
  800.          {incr count} {incr row}
  801.          {comp count,21} {ifco-c pcol_2}
  802.          {comp count,41} {ifco-c pcol_3} {retu}
  803.  {:no_pref}{rclo}{incr count}
  804.          {disp 22,3,0e,Install which external protocol ? >   ^h^h}
  805.          {gets-i p_num,2,retu}
  806.          {rope %_hom%\PROTOCOL.DAT,no_pref}
  807.          {setv count,1}
  808.          {setv ctr,1}
  809.  {:pdo_loop}
  810.          {read pline}
  811.          {inst pline,l:}
  812.          {ifco ,pdo_loop}
  813.          {comp ctr,%p_num}
  814.          {ifco pdo_this}
  815.          {incr ctr} {goto pdo_loop}
  816.  {:pdo_this}
  817.          {subs p_name,12,12,%pline}
  818.          {read p_up} {subs p_up,12,240,%p_up}
  819.          {read p_dn} {subs p_dn,12,240,%p_dn}
  820.          {rclo} {setv p_num} {setv ctr} {retu}
  821.  
  822.  {:pikt_1} {disp 9,1,70,           Adding %p_name                }
  823.            {disp 9,40,70, Press <ENTER> to take default.        } {retu}
  824.  {:pname}{setv pname,%p_name} {retu}
  825.  {:dp_up}{disp 17,3,0e,%%protodir\%p_up}  {disp 19,1,0f,> } {retu}
  826.  {:up_cmd}{setv up_cmd,%p_up} {setv p_up} {disp 19,1,,  } {retu}
  827.  {:dp_dn}{disp 21,3,0e,%%protodir\%p_dn}  {disp 23,1,0f,> } {retu}
  828.  {:dn_cmd}{setv dn_cmd,%p_dn} {setv p_dn} {disp 23,1,,  } {retu}
  829.  
  830.  {:avail_lett}
  831.          {setv avail}
  832.          {setv all,ABCDEFGHIJKLMOPQRSTUVWXYZ!}
  833.          {setv count,0}
  834.  {:avail_loop}
  835.          {incr count}
  836.          {subs char,%count,1,%all}
  837.          {comp char,!} {ifco retu}
  838.          {comp eprot_%char}
  839.          {ifco ,avail_loop}
  840.          {setv avail,%avail %char} {goto avail_loop}
  841.  
  842.  {:add_eprot}
  843.          {clea}
  844.          {call prot_ref}
  845.          {clea}
  846.          {disp 9,1,70,              Add External file transfer protocol to CS-COMMO                   }
  847.          {comp p_name} {ifco-c ,pikt_1}
  848.          {setv var,eprot_?}
  849.          {call disp_help}
  850.          {call avail_let}
  851.  {:pik_letter}
  852.          {disp 11,3,,Available letters: %avail} {setv all}
  853.          {disp 13,3,0e,You MUST choose a letter for [%p_name] external protocol:  ^h}
  854.          {gets-i _prot,1,esc} {comp _prot, } {ifco pik_letter}
  855.          {inst avail,%_prot} {ifco ,pik_letter} {setv avail}
  856.          {disp 14,3,0e,Input protocol name for menu display.  <CR> = %p_name: }
  857.          {gets-i pname,12}
  858.          {comp pname} {ifco-c pname}
  859.          {wope-a %_hom%cs-mac%ver.cfg}
  860.          {writ eprot_%_prot,%pname                ;Added %_dat %_tim}
  861.          {wclo}
  862.          {setv temp,eprot_%_prot}
  863.          {setv %%temp,%pname} {setv temp}
  864.          {setv var,:eup_?}
  865.          {call disp_help}
  866.          {disp 16,3,0e,Input complete %pname UPLOAD command line.  <CR> for default.}
  867.          {disp 17,3,0e,progname.exe -send @^^}
  868.          {disp 17,33,0e,(send^^}
  869.          {disp 17,39,0e,).lst ^m^j> }
  870.          {comp p_up}   {ifco-c ,dp_up}
  871.          {gets-i up_cmd}
  872.          {comp up_cmd} {ifco-c up_cmd}
  873.          {setv var,:edn_?}
  874.          {call disp_help}
  875.          {disp 20,3,0e,Input complete %pname DOWNLOAD command line.  <CR> for default.}
  876.          {disp 21,3,0e,progname.exe -receive %%dl_dir ^m^j> }
  877.          {comp p_dn}   {ifco-c ,dp_dn}
  878.          {gets-i dn_cmd}
  879.          {comp dn_cmd} {ifco-c dn_cmd}
  880.          {wope-a %_hom%%_mac}
  881.          {writ}
  882.          {writ  ^(:eup_%_prot^) ^(setv cmd,%%protodir\%up_cmd^) ^(retu^)}
  883.          {writ  ^(:edn_%_prot^) ^(setv cmd,%%protodir\%dn_cmd^) ^(retu^)}
  884.          {wclo}
  885.          {exec-s ver>NUL}
  886.          {clea}
  887.          {disp 2,5,0f,%pname Protocol [%_prot%] is installed.}
  888.          {disp 3,5,0e,%_hom%%_mac and CS-MAC%ver.CFG have been modified.}
  889.          {disp 4,5,0b,PgUp and PgDn menus now show %pname.^m^j^j}
  890.          {goto clea}
  891.  
  892. ┌─────────────────┐
  893. │  Parse Routine  │
  894. └─────────────────┘
  895.   * This routine parses a %cmd_str% variable into "space delimited"
  896.   * arguments.  %arg0 is the routine to be called after :parse.
  897.   * Subsequent arguments %arg1, %arg2, %arg3, etc.
  898.  
  899.  {:parse}
  900.          {inst %cmd_str%, }
  901.          {ifco ,eparse}
  902.          {setv pos,%_pos}
  903.          {decr pos}
  904.          {subs arg%pcount,1,%pos,%cmd_str}
  905.          {incr pos,2}
  906.          {subs cmd_str,%pos,255,%cmd_str}
  907.          {incr pcount}
  908.          {goto parse}
  909.  {:eparse}
  910.          {setv arg%pcount,%cmd_str}
  911.          {setv cmd_str}
  912.          {setv pcount,0}
  913.          {goto %arg0}
  914.  
  915.  ┌────────────────────────────────────────┐
  916.  │  Routine to strip comments from .CSMs  │
  917.  └────────────────────────────────────────┘
  918.   *  This routine opens a .CSM file that you specify, reads it
  919.   *  line by line, deletes lines that have an asterisk within the first
  920.   *  three characters, and removes comments following a semi-colon.
  921.   *  The new file has a file extension of .CFS
  922.   *
  923.   *  The purpose of this routine is to minimize RAM usage by
  924.   *  shortening MAC files.
  925.   *  Since Fred has added macro compiling to Commo, this feature is
  926.   *  of dubious value.
  927.  
  928.  {:strip}
  929.          {sete-p0 retu}
  930.          {setv file,%_hom%}
  931.  {:re_in}{inpu file,name of .CSM file to strip}
  932.          {inst %file,.} {ifco ,nodot} {setv pos,%_pos} {decr pos}
  933.          {subs file,1,%pos,%file} {setv pos}
  934.  {:nodot}{ifex %file%.csm,,re_in}               ;make sure file exists
  935.          {clea}
  936.          {disp 3,1,,Stripping %file%.CSM into %file%.CFS^m^j}
  937.          {disp ,,,Line: }
  938.          {rope %file%.csm,e_strip}              ;open .CSM to read
  939.          {wope %file%.cfs}                      ;open .CFS to write
  940.          {setv count,0}
  941.  {:s_loop}
  942.          {comp shh,y} {ifco qs_loop}
  943.          {incr count}
  944.          {disp ,7,,%count}
  945.  {:qs_loop}
  946.          {read line}
  947.          {comp line}    {ifco no_com}           ;write empty lines
  948.          {subs temp,1,3,%line}                  ;look at first three chars
  949.          {inst temp,*}  {ifco s_loop}           ; if a * skip the line
  950.          {subs temp,1,11,%line}                 ;look at first 11 chars
  951.          {inst temp,^(}{ifco ,no_com}           ;look for a left curley
  952.          {subs line,%_pos,255,%line}            ;delete leading whitespace
  953.          {inst line,;} {ifco ,no_com}           ;look for a semicolon
  954.          {setv pos,%_pos}  {decr pos}           ;get semicolon position
  955.          {subs temp,%pos,255,%line}             ;what follows semicolon?
  956.          {inst temp,^)} {ifco no_com}           ; if a right curly, write!
  957.          {inst temp,)}  {ifco no_com}           ; if a right paren, write!
  958.          {subs line,1,%pos,%line}               ;otherwise, delete comment
  959.  
  960.  {:no_com}
  961.          {writ %line}                           ;xxx.CSM --> xxx.CFS file
  962.          {goto s_loop}                          ;read next line
  963.  {:e_strip}
  964.          {setv count}
  965.          {wclo}                                 ;close .CFS file
  966.          {disp 6,1,,%file.csm has been stripped into %file.cfs^m^j}
  967.          {exec-w10 dir %file.*}
  968.          {retu}                                 ;reload base.MAC
  969.  
  970.  ┌───────────────────────────────────────────────────┐
  971.  │  Check macros for labels duplicate to Home macro  │
  972.  └───────────────────────────────────────────────────┘
  973.  {:fgrep_ut}
  974.          {ifex %utildir\fgrep.com,,no_fgrep}
  975.          {setv text}
  976.          {info-q1s0 Do you want to save to a txt file?}
  977.          {ifco-c text_y}
  978.          {setv _menu1, 1 ■ Search all *.SRC, *.CSM, & *.MAC files}
  979.          {setv _menu2, 2 ■ Search all *.FON and *.ADR}
  980.          {setv _menu3, 3 ■ Check one file for labels already in %_mac}
  981.          {setv _menu4, 4 ■ Make DOS CALL List (%ramdr\dos_call.lst)}
  982.          {setv _menu5, 5 ■ Search %address}
  983.          {setv _menter,label_srch}
  984.          {setv _mlabel,label_srch,fon_srch,dupe_chek,dos_lst,adr_srch}
  985.          {menu 9,60,fgrep menu}
  986.          {setv what} {setv where} {setv wher}
  987.          {retu}
  988.  
  989.  {:label_srch}
  990.          {setv where,%_hom%*.csm %_hom%*.mac %_hom%*.src} {setv wher,MACs}
  991.          {call fgrep} {goto label_srch}
  992.  {:fon_srch}
  993.          {setv where,%_hom%*.fon %_hom%*.adr} {setv wher,MACs}
  994.          {goto fgrep}
  995.  {:dos_lst}{exec-n fgrep -flo70x "^(exec" %_hom%*.csm > %ramdr\dos_t}
  996.            {exec-n fgrep -flo70x "^(setv cmd," %_hom%*.csm >> %ramdr\dos_t}
  997.            {exec-n fgrep -svx " echo " %ramdr\dos_t > %ramdr\dos_call}
  998.            {exec-n fgrep -svx " type " %ramdr\dos_call > %ramdr\dos_t}
  999.            {exec-n fgrep -svx " copy " %ramdr\dos_t > %ramdr\dos_call}
  1000.            {exec-n fgrep -svx " ren " %ramdr\dos_call > %ramdr\dos_t}
  1001.            {exec-n fgrep -svx " del " %ramdr\dos_t > %ramdr\dos_call}
  1002.            {exec-n fgrep -svx " dir " %ramdr\dos_call > %ramdr\dos_t}
  1003.            {exec-n fgrep -svx " cd " %ramdr\dos_t > %ramdr\dos_call.lst}
  1004.            {exec-n del %ramdr\dos_t>NUL}
  1005.            {exec-n del %ramdr\dos_call>NUL}
  1006.            {setv file,%ramdr\dos_call.lst}
  1007.            {call ed_it}
  1008.            {}
  1009.  
  1010.  {:adr_srch}
  1011.          {setv where,%address} {setv wher,%where}
  1012.          {goto fgrep}
  1013.  
  1014.  {:fgrep}{setv what}
  1015.          {inpu what,What do you want to search %wher for?}
  1016.          {setv wher} {comp what} {ifco stop}
  1017.          {comp text} {ifco-c screen,text}
  1018.          {retu}
  1019.  
  1020.  {:screen} {exec-nw fgrep -flo70x "%what" %where}
  1021.            {setv where} {retu}
  1022.  {:text}   {exec-n fgrep -flo70x "%what" %where > %text}
  1023.            {setv where} {edit %text} {info-q1s0 Delete %text?}
  1024.            {setv text} {ifco ,retu} {exec-n del %text} {retu}
  1025.  {:text_y}
  1026.          {setv text,%savedir\}
  1027.          {inpu text,Save fgrep search to ....}
  1028.          {comp text,%savedir\} {ifco ,retu}
  1029.          {setv text} {retu}
  1030.  
  1031.  {:du_shh1} {disp %dupe_cnt,1,,Reading %file  Line: %count } {retu}
  1032.  {:du_shh2} {disp ,,, Label: %dupe        } {retu}
  1033.  {:du_shh3} {disp %dupe_cnt,1,,^mReading %file  Line: %count DUPLICATE %dupe} {retu}
  1034.  
  1035.  {:dupe_chek}
  1036.          {setv file,%_hom}
  1037.          {sete-p0 dupe_edit}
  1038.          {inpu file,Search macro for labels duped in %_hom%%_mac}
  1039.          {sete-p0 dupe_loop}
  1040.          {comp file,%_hom} {ifco dupe_edit}
  1041.          {comp file}       {ifco dupe_edit}
  1042.          {ifex %file,,dupe_chek}
  1043.          {clea}
  1044.          {disp %dupe_cnt,1,,Duplicate checking %file .. be patient}
  1045.          {exec-n fgrep -sx "^(:" %_hom%%_mac > %_hom%dupechek}
  1046.          {rope %file,end_dupe}
  1047.          {setv count,0}
  1048.          {setv dupe_cnt,1}
  1049.  {:dupe_loop}
  1050.          {read line}
  1051.          {incr count}
  1052.          {inst line,^(:}
  1053.          {ifco ,dupe_loop}
  1054.          {comp shh} {ifco-c du_shh1}
  1055.          {subs line,%_pos,255,%line}
  1056.          {inst line,^)}
  1057.          {subs dupe,1,%_pos,%line}
  1058.          {comp shh} {ifco-c du_shh2}
  1059.          {exec-d %utildir\fgrep.com -e "%dupe%" %_hom%dupechek}
  1060.          {ifer 1,,dupe_loop}
  1061.          {comp shh} {ifco-c du_shh3}
  1062.          {wope-a %_hom%dupes}
  1063.          {writ %_dat %_24h%:%_min% %file  Line: %count  Dupe: %dupe}
  1064.          {wclo}
  1065.          {incr dupe_cnt}
  1066.          {goto dupe_loop}
  1067.  {:end_dupe}
  1068.          {decr dupe_cnt}
  1069.          {wope-a %_hom%dupes}
  1070.          {writ END label test %file  %dupe_cnt Duplicates}
  1071.          {writ} {wclo}
  1072.          {disp ,,,^mDone  : %file  %count Lines  %dupe_cnt Duplicates  with %_hom%%_mac                   ^m}
  1073.          {goto dupe_chek}
  1074.  {:dupe_edit}
  1075.          {edit %_hom%dupes}
  1076.          {setv dupe}
  1077.          {setv dupe_cnt}
  1078.          {retu}
  1079.  {:no_fgrep}
  1080.          {info This routine requires %utildir\fgrep.com to operate}
  1081.          {retu}
  1082.  
  1083.  ┌──────────────────────────────────┐
  1084.  │  Menu driven .CFG file Routines  │
  1085.  └──────────────────────────────────┘
  1086.   *  These macro routines are designed for easy expansion and upgrading.
  1087.   *  After a user has run CS-MAC once, future upgrades will build on the
  1088.   *    initial configuration file.
  1089.   *  This macro copes when a user skips versions .... the resulting
  1090.   *    .CFG file will have all (and only) new variable definitions appended.
  1091.   *  The CS-MAC user won't need to review existing configuration data.
  1092.   *  This is done by reading the COMMO variable space and the old config
  1093.   *    file.  If a variable appears in either, the user will not be asked
  1094.   *    to confirm its value.
  1095.   *  When a variable appears on the list below but is in neither the
  1096.   *    current config file nor in Commo variable space, the user is
  1097.   *    prompted to assign a value to the variable.  Extended prompts
  1098.   *    and Example (=default) settings are taken from CS-MAC.HLP.
  1099.  
  1100.  {:bail_new}
  1101.          {clea}
  1102.          {info-qs0 Bail-out will delete CS-MAC%ver.CFG.  Are you sure you want this?}
  1103.          {ifco ,ug_loo}
  1104.          {exec-n del %_hom%cs-mac%ver.cfg>NUL}
  1105.  
  1106.  {:exit_new}
  1107.          {info-d15s0 CS-MAC%ver exiting ^(Commo^) and returning to DOS}
  1108.          {exit}
  1109.  
  1110.  {:need_hl} {info-q CS-MAC.HLP not found in %_hom.  Continue without help?}
  1111.             {ifco retu,exit_new}
  1112.  
  1113.  {:bail_out}
  1114.          {clea}
  1115.          {info-qs0 Bail-out will Exit Commo.  Are you sure you want this?}
  1116.          {ifco ,ug_loo}
  1117.          {exec-n echo CS-MAC%ver ABORTED UPGRADE >> %_hom%cs-mac%ver.cfg}
  1118.          {exec-n echo %_dat %_tim >> %_hom%cs-mac%ver.cfg}
  1119.          {exec-n ren %_hom%cs-mac%ver.cfg cs-mac%ver_ck.cfg}
  1120.          {goto exit_new}
  1121.  
  1122.  {:welcome}
  1123.          {stat y}
  1124.          {clea}
  1125.          {disp 4,11,,              Welcome to the CS-MAC series!}
  1126.          {disp 5,11,,A configuration file (CS-MAC%ver.CFG) will be written for you ... }
  1127.          {info-qs0 Continue with Installation of CS-MAC%ver?}
  1128.          {ifco retu} {clea} {info-d10s0 CS-MAC%ver installation terminated}
  1129.          {goto exit_new}
  1130.  
  1131.  {:new_user}
  1132.          {sete-p0 bail_new}
  1133.          {setv vctr,1}
  1134.          {ifex-c %_hom%cs-mac.hlp,,need_hl}
  1135.          {call welcome}
  1136.          {wope-a %_set}
  1137.          {writ}
  1138.          {writ  ^(mac=start^)            Startup macro label for CS-MAC%ver}
  1139.          {writ                         Added %_dat at %_tim}
  1140.          {wclo}
  1141.          {wope %_hom%cs-mac%ver.cfg}    ;make this version cs-mac.cfg
  1142.          {writ CS-MAC%ver.CFG}          ;Header for this .CFG file
  1143.          {writ %_dat%  %_tim%}
  1144.          {writ}
  1145.          {wclo}
  1146.          {goto ug_loo}
  1147.  
  1148.  {:upgrade}
  1149.          {sete-p0 bail_out}
  1150.          {setv vctr,1}
  1151.          {setv ver_ck,%ver}             ;set var to check .cfg version
  1152.          {ifex-c %_hom%cs-mac.hlp,,need_hl}
  1153.  {:ver_loop}
  1154.          {decr ver_ck}                  ;start looking for older .cfg
  1155.          {leng %ver_ck}
  1156.          {comp %_len,1} {ifco ,no_pad}  ;pad single digit version name
  1157.          {setv ver_ck,0%ver_ck}         ; with a leading zero
  1158.  {:no_pad}
  1159.          {ifex %_hom%cs-mac%ver_ck.cfg,rencfg}  ;find old .cfg file
  1160.          {comp ver_ck,06}  {ifco ,ver_loop}
  1161.  
  1162. {:rencfg}{exec-n ren %_hom%cs-mac%ver_ck.cfg cs-mac%ver.cfg}
  1163.          {wope-a %_hom%cs-mac%ver.cfg}
  1164.          {writ}
  1165.          {writ CS-MAC%ver update}
  1166.          {writ %_dat  %_tim} {writ} {wclo}
  1167.  
  1168. {:ug_loo}{disp 9,1,70,        Input a value for CS-MAC%ver.CFG file  ■  Empty CR accepts example        }
  1169.          {setv count,10} {call 1-2cle}
  1170.          {call ug_loop}
  1171.  
  1172.  {:ready}
  1173.          {sete-p0 commo}
  1174.          {wclo}
  1175.          {clea}
  1176.          {disp 2,3,,%_hom%CS-MAC%ver%.CFG is up to date.}
  1177.          {disp 3,3,,It will be read into your COMMO startup.}
  1178.          {setl}
  1179.  {:commo}{setv var}     {setv valu}
  1180.          {setv pos}     {setv prompt}
  1181.          {setv pad}     {setv pad_l}
  1182.          {setv sdesc}   {setv hline}
  1183.          {setv sugg}    {setv ver_ck}
  1184.          {setv vctr}
  1185.          {wclo}
  1186.          {disp 4,3,,                             }
  1187.          {disp 9,1,,                                                                                }
  1188.          {disp 5,1}
  1189.          {goto start}                          ;in CS-COMMO.CSM
  1190.  
  1191.  {:disp_help}                                  ;routine to display segments
  1192.          {ifex %_hom%cs-mac.hlp,,retu}         ; from a variable description
  1193.          {call no_hl}                          ; file (CS-MAC.HLP)
  1194.          {rope %_hom%cs-mac.hlp,retu}
  1195.          {comp shh,y} {ifco n_hlp}
  1196.          {disp 1,7,,Checking HELP for %var}
  1197.  {:n_hlp}{disp 1,2,, ...}
  1198.          {read hline}
  1199.          {inst hline,Variable:  %var }
  1200.          {ifco ,n_hlp}
  1201.          {setv count,1}
  1202.          {subs sdesc,33,36,%hline}             ;%sdesc is imported to .CFG
  1203.          {subs hline,12,72,%hline}
  1204.  {:d_hlp}{disp %count,1,,%hline}
  1205.          {read hline} {comp hline} {ifco rclo}
  1206.          {inst hline,Example : } {ifco-c get_ex}
  1207.          {incr count} {comp count,8}
  1208.          {ifco-l d_hlp} {rclo} {retu}
  1209.  {:no_hl}{setv count,1}
  1210.  {:cl_hl}{disp %count,1,,                                                                                }
  1211.          {incr count} {comp count,8}
  1212.          {ifco-l cl_hl}
  1213.  {:rclo} {rclo} {retu}                          ;end of disp_help
  1214.  {:get_ex} {subs sugg,12,40,%hline}             ;subroutine to take suggested
  1215.          {inst sugg,  } {ifco-c strp_cmnt}
  1216.          {inst sugg,%%}                         ;is this a variable expression
  1217.          {ifco ,retu}                           ;ifnot, we're done
  1218.          {subs sugg,2,40,%sugg}                 ;strip % off
  1219.          {inst sugg,%%}                         ;find second %
  1220.          {setv len,%_pos}      {incr len}
  1221.          {subs tail,%len,40,%sugg} {decr len,2} ;save tail
  1222.          {subs sugg,1,%len,%sugg}               ;variable name
  1223.          {setv-s sugg,%sugg}                    ;convert to variable contents
  1224.          {subs rear,-1,1,%sugg}                 ;make %_hom wo/backslash
  1225.          {comp rear,\} {ifco-c strp_bksl}
  1226.          {setv sugg,%sugg%%tail}                ;restore tail
  1227.          {retu}                                 ;end of extract suggestion
  1228.  {:strp_cmnt} {subs sugg,1,%_pos,%sugg} {retu}
  1229.  {:strp_bksl}
  1230.          {leng %sugg}
  1231.          {setv len,%_len} {decr len}
  1232.          {subs sugg,1,%len,%sugg} {retu}
  1233.  
  1234.  {:put_it}
  1235.          {rclo}
  1236.          {comp %%var} {ifco ,retu}      ;skip config if item in COMMOspace
  1237.          {disp 11,36,,         }
  1238.          {disp 12,35,,                                              }
  1239.          {disp 13,35,,                                              }
  1240.          {disp 13,2,, ...                              }
  1241.          {comp shh,y} {ifco cfg_hshh}
  1242.          {disp 13,7,,Checking CFG for %var        }
  1243.  {:cfg_hshh}
  1244.          {rope %_hom%cs-mac%ver.cfg,no_cfg}
  1245.  {:cfg_chk}
  1246.          {read line}
  1247.          {inst line,%var,} {ifco ,cfg_chk} ;skip if item in .CFG file
  1248.          {rclo} {retu}
  1249.  {:no_cfg}
  1250.          {disp 9,2,70,%vctr}
  1251.          {call disp_help}                      ;display help
  1252.          {comp var,shh} {ifco skip_skip}       ;always show %shh
  1253.          {comp new}     {ifco skip_skip}       ;always show unless new user
  1254.          {inst sugg,NUL} {ifco skip_nul}
  1255.  {:skip_skip}
  1256.          {disp 11,26,,Variable: %var}
  1257.          {disp 12,27,,Example: %sugg}
  1258.          {disp 13,2,,Value for your startup .CFG file: }
  1259.          {gets-i valu}
  1260.          {comp valu,NUL} {ifco-c valu_nul}
  1261.          {comp valu} {ifco-c def_valu}
  1262.  {:nul_skip}
  1263.          {incr vctr}
  1264.          {setv pad,                                          }
  1265.          {setv pad_l,42}
  1266.          {leng %var%%valu} {decr pad_l,%_len} {subs pad,1,%pad_l,%pad}
  1267.          {wope-a %_hom%cs-mac%ver.cfg}
  1268.          {writ %var,%valu %pad ;%sdesc}
  1269.          {wclo}
  1270.          {setv %%var,%valu}
  1271.          {retu}
  1272.  
  1273.  {:skip_nul} {setv valu} {goto nul_skip}
  1274.  {:valu_nul} {setv valu} {retu}
  1275.  {:def_valu}                                    ;subroutine to put default
  1276.          {inst sugg,NUL} {ifco retu}            ;if suggested value is NUL
  1277.          {setv valu,%sugg} {retu}               ;else, replace w/suggestion
  1278.  
  1279.  {:ug_loop}
  1280. 08       {setv var,shh}      {call put_it} ;if "Y", quiets SFI
  1281. 07       {setv var,name}     {call put_it} ;your logon name
  1282. 07       {setv var,handle}   {call put_it} ;handle for Internet use
  1283. 07       {setv var,v_ph}     {call put_it} ;your Voice Phone Number
  1284. 07       {setv var,d_ph}     {call put_it} ;your Data  Phone Number
  1285. 07       {setv var,b_day}    {call put_it} ;your Birthdate
  1286. 07       {setv var,sig}      {call put_it} ;your signature
  1287.  
  1288. 07       {setv var,utildir}  {call put_it} ;dir for utility programs
  1289. 13       {setv var,protodir} {call put_it} ;dir for external protocols
  1290. 07       {setv var,savedir}  {call put_it} ;dir for capture files
  1291. 07       {setv var,ins_dir}  {call put_it} ;dir for docs & instructions
  1292. 07       {setv var,qwkdr}    {call put_it} ;dir for .QWK files
  1293. 07       {setv var,znpak}    {call put_it} ;dir for ZIPNEWS packets
  1294. 07       {setv var,repdr}    {call put_it} ;dir for .REP files
  1295. 07       {setv var,znrdr}    {call put_it} ;dir for ZIPNEWS reader
  1296. 11       {setv var,hold_dr}  {call put_it} ;temp hold dir for downloads
  1297. 11       {setv var,picdr}    {call put_it} ;dir to strew .GIF, etc
  1298. 07       {setv var,ramdr}    {call put_it} ;your RAMDrive
  1299. 07       {setv var,bu_dr}    {call put_it} ;Backup drive for .MACs
  1300. 07       {setv var,dosdir}   {call put_it} ;dir for DOS files
  1301. 07       {setv var,lst_dir}  {call put_it} ;dir for BBS file list storage
  1302.  
  1303. 07       {setv var,ext_ed}   {call put_it} ;drive:\path\external_editor
  1304. 07       {setv var,ext_li}   {call put_it} ;drive:\path\external_lister
  1305. 07       {setv var,pk_zip}   {call put_it} ;drive:\path\ZIP_program
  1306. 07       {setv var,pk_un}    {call put_it} ;drive:\path\UNZIP_program
  1307. 08       {setv var,ext_fl}   {call put_it} ;drive:\path\file_lister
  1308. 10       {setv var,address}  {call put_it} ;drive:\path\Address_book
  1309. 07       {setv var,reader}   {call put_it} ;drive:\path\mail_reader
  1310. 08       {setv var,ext_di}   {call put_it} ;drive:\path\voice_call_dialer
  1311.  
  1312. 07       {setv var,prot}     {call put_it} ;file trans protocol
  1313. 07       {setv var,mprot}    {call put_it} ;mail trans protocol
  1314. 13       {setv var,eprot_h}  {call put_it} ;HS/Link external protocol
  1315. 13       {setv var,eprot_k}  {call put_it} ;Kermit external protocol
  1316. 13       {setv var,eprot_s}  {call put_it} ;Smodem external protocol
  1317. 13       {setv var,swap_prot}{call put_it} ;Swap out for external protocols?
  1318.  
  1319. 11       {setv var,min_msg}  {call put_it} ;Minimum size of mail packet
  1320. 11       {setv var,zmin_msg} {call put_it} ;Minimum size of ZIPNews packet
  1321. 07       {setv var,qrdr}     {call put_it} ;.QWK ren routine (qwk or jbr)
  1322. 07       {setv var,znr}      {call put_it} ;.ZNS packet rename routine
  1323. 11       {setv var,max_pak}  {call put_it} ;Number of packets per %BBSID
  1324. 11       {setv var,sho_}     {call put_it} ;N = skip show file actions
  1325.  
  1326. 08       {setv var,color}    {call put_it} ;Answer to ANSI graphics? prompt
  1327. 08       {setv var,fast}     {call put_it} ;"quick non-stop" modifiers
  1328. 11       {setv var,chat_str} {call put_it} ;Uh-oh, SYSOP interruption
  1329. 11       {setv var,pr_alarm} {call put_it} ;alarm ring count  0 = quiet
  1330.  
  1331. 12       {setv var,inet_pmt} {call put_it} ;internet provider prompt
  1332. 12       {setv var,tn_pf}    {call put_it} ;telnet prefix for "dialing"
  1333. 12       {setv var,inet_bye} {call put_it} ;logoff command inet provider
  1334. 13       {setv var,uqwk_type}{call put_it} ;QWK, SOUP, or ZIPNEWS packets?
  1335. 13       {setv var,uqwk_news}{call put_it} ;"Y" to take news, else mail only
  1336.  
  1337. 07       {setv var,tagfile}  {call put_it} ;filename for your taglines
  1338. 08       {setv var,random_t} {call put_it} ;# of lines in tagfile ... max 3600
  1339. 12       {setv var,tag_pf}   {call put_it} ;prefix when sending tagline
  1340.  
  1341. 13       {setv var,_slp}     {call put_it} ;row# for status line
  1342. 07       {setv var,cap}      {call put_it} ;capture filename
  1343. 10       {setv var,palette}  {call put_it} ;Menu colors
  1344. 10       {setv var,xtime}    {call put_it} ;# of seconds to EXIT
  1345. 13       {setv var,cs_hlp}   {call put_it} ;ask for use of CS-MAC help
  1346. 13       {setv var,_edd}     {call put_it} ;"Y" to open FON on Commo load
  1347. 13       {setv var,_prn}     {call put_it} ;Printer device name [PRN, LPT2]
  1348. 13       {setv var,max_desc} {call put_it} ;max # of lines - file descrip
  1349. 13       {setv var,swap_ed}  {call put_it} ;"Y" to swap Commo before edit
  1350. 13       {setv var,exed_all} {call put_it} ;"Y" to use ext_ed for all files
  1351. 13A      {setv var,ed_wfl}   {call put_it} ;"Y" to use PNS to pick edit files
  1352. 10       {setv var,l_parm}   {call put_it} ;NULmodem transfer parms
  1353. 10       {setv var,l_use}    {call put_it} ;NULmodem transfer log
  1354. 07       {setv var,xpert}    {call put_it} ;"y" for complex menus
  1355. 10       {setv var,dev_mac}  {call put_it} ;developmental macro
  1356. 10       {setv var,dev_st}   {call put_it} ;develop'l macro start lbl
  1357. 13       {setv var,fb_mac}   {call put_it} ;original COMMO.MAC renamed
  1358.  
  1359. 07       {setv var,auto}     {call put_it} ;"y" for Autopilot ON
  1360. 11       {setv var,ev_file}  {call put_it} ;event timing and labels
  1361. 11       {setv var,ap_clr}   {call put_it} ;Autopilot Hotkey menu color
  1362. 11       {setv var,ap_tlr}   {call put_it} ;Autopilot Toggle menu color
  1363. 11       {setv var,ap_menu}  {call put_it} ;"Y" to enable custom menu
  1364. 11       {setv var,ap_pass}  {call put_it} ;Autopilot host password file
  1365. 11       {setv var,ap_ans}   {call put_it} ;Modem ANSWER string for Host
  1366. 11       {setv var,door_way} {call put_it} ;path\doorway.exe /parm: options
  1367. 13       {setv var,ext_host} {call put_it} ;hook to external host
  1368. 11       {setv var,cs_id}    {call put_it} ;Default name for key file
  1369. 13       {setv var,jb_learn} {call put_it} ;use JB-LEARN engine
  1370.  
  1371.          {retu}
  1372.